/*
 * Copyright 2004-2006 asoft
 * 本软件及其所有拷贝的名称，与光盘上或本软件中注明的公司同在。
 * 本软件及文档享有版权，并受国家版权法及国际协约条款的保护。
 * 您不可以从本软件中去掉其版权声明；并保证为本软件的拷贝（本部或部分）复制版权声明。
 * 您同意制止以任何形式非法拷贝本软件及文档。
 * 版权信息参见：
 *      http://www.asoft.cn/licenses
 */

package com.asoft.common.sysframe.valid;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;

import com.asoft.common.sysframe.define.RoleStatus;
import com.asoft.common.sysframe.manager.RoleManager;
import com.asoft.common.sysframe.model.Role;
import com.asoft.common.util.mvc.valid.UserValidator;
import com.asoft.common.util.mvc.valid.ValidatedResult;

/**
 * <p>Title: 角色</p>
 * <p>Description: 角色 Role </p>
 * <p>Copyright: Copyright (c) 2004-2006</p>
 * <p>Company: asoft</p>
 * @ $Author: amon.lei $
 * @ $Date: 2007-2-20 $
 * @ $Revision: 1.0 $
 * @ created in 2007-2-20
 *
 */

public class UpdateRoleValidator extends UserValidator
{
        static Logger logger = Logger.getLogger(UpdateRoleValidator.class);

        /**
         * 修改角色
         *
         * @ param: HttpServletRequest request
         * @ param: ValidatedResult vr 校验结果存放器
         * @ param: String[] params 配置参数
         */

        public void validing(HttpServletRequest request,ValidatedResult vr,String[] params)
        {
                logger.debug("开始进行修改角色前校验");
                RoleManager roleManager = (RoleManager)this.getBean("roleManager");
                
                Role role = (Role)this.validBaseObjectById(request,vr,roleManager,"id","记录已经不存在");
                if(role == null)
                {
                        return ;
                }
                
                String name = this.validString(request,vr,"name",1,50);
                
                Role superRole = null;
                String superRoleId = request.getParameter("parentId");
                if(superRoleId != null)
                {
                        superRole = (Role)this.validBaseObjectById(request,vr,roleManager,"parentId","请重新选择");
                }
                
                String remark = this.validString(request,vr,"remark",0,500);
                
                if(vr.isAllValidated())
                {
                        logger.debug("校验通过");
                        role.setName(name);
                        role.setSuperRole(superRole);
                        role.setRemark(remark);
                        role.setStatus(RoleStatus.VALID);
                        request.setAttribute(Role.class.getName(),role);
                }
        }
}
